I have a simple Minizinc roleplay assignment program with original decision variable "assignments", and added another channel decision variable "person_assignments" with int_set_channel() constraint. My program should run fast when n = 35, r = 8 or even n = 60, r = 8 when printing the "assignments" variable only. However, when adding to output "person_assignments" variable at the end, the program runs very slow even for n = 25, r = 6.
Since the original variable has already been determined, I don't know why the new variable cannot be outputted immediately. Even I have some other constraints planned involving "person_assignments" usage, it also runs slow so that I need to comment them out.
https://github.com/terrytktam/RoleplayAssignment/blob/perf-tuning/roleplay_assignment.mzn
Would anyone please help why Minizinc has such strange behavior? Thanks in advance.